package com.tony.juc;

import java.util.concurrent.atomic.DoubleAccumulator;
import java.util.concurrent.atomic.DoubleAdder;

/**
 * Created with IntelliJ IDEA.
 *
 * @Title: DoubleAccumulatorDemo001
 * @Auther: 皮蛋布丁
 * @Date: 2022/04/06/21:51
 * @Description: 并发计算
 */
public class DoubleAccumulatorDemo001 {

    public static void main(String[] args) {

        DoubleAccumulator da = new DoubleAccumulator((x,y)->x + y,1.1); //每次增加1.1数据
        System.out.println("【累加器】原始存储内容：" + da.doubleValue());
        da.accumulate(20); //数据累加计算
        System.out.println("【累加器】新的存储内容：" + da.doubleValue());

        DoubleAdder da1 = new DoubleAdder(); //定义加法器
        //double和long都属于94位的数据，所以计算的时候需要考虑到2个32位数据的统一问题
        da1.add(10);
        da1.add(20);
        da1.add(30);
        System.out.println("【加法器】计算结果：" + da1.doubleValue());


    }
}
